package com.ynet.middleground.approve.bean;

import java.io.Serializable;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 项目名：ifp-approve <br>
 * 包名：com.ynet.middleground.approve.bean <br>
 * 类名：BusinessFormData <br>
 * 描述： 业务数据-基本表单数据
 * 
 * @author Suremotoo
 * @create 2021-03-23 17:05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "业务数据-基本表单数据", description = "业务数据-基本表单数据")
public class BusinessFormData implements Serializable {

    private static final long serialVersionUID = -7946028302154452211L;

    @ApiModelProperty(value = "参数名", notes = "参数名", dataType = "String")
    private String idName;

    @ApiModelProperty(value = "参数展示名", notes = "参数展示名", dataType = "String")
    private String displayName;

    @ApiModelProperty(value = "参数类型 参考值：text、textarea、img、file、table", notes = "参数类型 参考值：text、textarea、img、file、table",
        dataType = "String", allowableValues = "text,textarea,img,file,table")
    private String type;

    @ApiModelProperty(value = "排序，值越大越靠前", notes = "排序，值越大越靠前", dataType = "Integer")
    private Integer order = 1;

    @ApiModelProperty(value = "是否隐藏", notes = "是否隐藏", dataType = "Boolean")
    private Boolean isHidden = false;

    @ApiModelProperty(value = "是否只读", notes = "是否只读", dataType = "Boolean")
    private Boolean isReadonly = false;

    @ApiModelProperty(
        value = "参数值 文件类型时该值为文件地址，示例： http://xxxxxxx/xxx.pdf 表格类型时该值为表格 JSON 字符串，可对比参考 columns，示例： [{\"channelName\":{\"value\":\"小贷\",\"childData\":{\"title\":\"小贷渠道详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}},\"reason\":{\"value\":\"欠款\",\"childData\":{\"title\":\"理由详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}}},{\"channelName\":{\"value\":\"易融\",\"childData\":{\"title\":\"易融渠道详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}},\"reason\":{\"value\":\"提交虚假材料\",\"childData\":{\"title\":\"材料详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}}}]",
        notes = "参数值 文件类型时该值为文件地址，示例： http://xxxxxxx/xxx.pdf 表格类型时该值为表格 JSON 字符串，可对比参考 columns，示例： [{\"channelName\":{\"value\":\"小贷\",\"childData\":{\"title\":\"小贷渠道详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}},\"reason\":{\"value\":\"欠款\",\"childData\":{\"title\":\"理由详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}}},{\"channelName\":{\"value\":\"易融\",\"childData\":{\"title\":\"易融渠道详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}},\"reason\":{\"value\":\"提交虚假材料\",\"childData\":{\"title\":\"材料详情\",\"isHiddenTitle\":true,\"isBtnActive\":false,\"btnName\":\"\",\"data\":[]}}}]",
        dataType = "String")
    private String value;

    @ApiModelProperty(
        value = "表格列信息集合（针对表格，仅 type 为 table 时使用） 示例： [{\"name\":\"channelName\",\"title\":\"渠道名称\"},{\"name\":\"reason\",\"title\":\"理由\"}]",
        notes = "表格列信息集合（针对表格，仅 type 为 table 时使用） 示例： [{\"name\":\"channelName\",\"title\":\"渠道名称\"},{\"name\":\"reason\",\"title\":\"理由\"}]")
    private List<BusinessTableData> columns;

    @ApiModelProperty(value = "是否签章（针对文件，仅 type 为 file 时使用）-暂不使用，保留字段",
        notes = "是否签章（针对文件，仅 type 为 file 时使用）-暂不使用，保留字段", dataType = "Boolean")
    private Boolean isSign = false;

    @ApiModelProperty(value = "签章位置信息（针对文件，仅 type 为 file 时使用）-暂不使用，保留字段",
        notes = "签章位置信息（针对文件，仅 type 为 file 时使用）-暂不使用，保留字段")
    private BusinessSignInfoData signInfo;

    @ApiModelProperty(value = "子页面业务表单数据集合", notes = "子页面业务表单数据集合")
    private BusinessChildData childData;

}
